import { createApp } from 'vue'
import App from './App.vue' // .vue 单文件组件 构建工具(webpack/vite 通过 vue-loader)
import router from './router'
import store from './store'
import pinia from './pinia'
import $api from './apis'
// dixon

import Area from '@/components/area.vue'
// create App实例是可以直接链式调用的
// createApp(App)
// .use(store)
// .use(router)
// .mount('#app')

const app = createApp(App);

app.component('Area',Area); // 全局注册一个Area组件

//  全局主持一个 混入器
app.mixin({
    mounted(){
        const { meta } = this.$route;
        if(meta.title)  document.title = meta.title;
    }
})



// 允许我们通过 app.config.globalProperties 扩展app实例上面的方法或者属性
// 可以把一些全局的方法挂载在这个位置
// 挂载在app.config.globalProperties的属性和方法 就可以在组件内部通过this进行调用
app.config.globalProperties.$version = '2.0.1';
app.config.globalProperties.$api = $api;

// 在vue2当中实现同样的方式 
// Vue.prototype.$api = $api;
// Vue.prototype.$version = '2.0.1'

app.use(store);
app.use(pinia);
app.use(router);
app.mount('#app');

